說到物件,就不能不講到物件傳參考的特性
在基本型別中都是傳值,但是物件型別是傳參考位址
var obj = {
a:'1'
}
var obj2 = obj; //複製obj的內容到obj2,可是這兩個物件都指向相同的位址
obj2.a = '2';
console.log(obj.a, obj2.a) //2 2
為了不去更動到原本的物件,我們可以使用淺拷貝以及深拷貝
var name = {}
var copy = {}
copy = Object.assign({}, name)
Object.assign 會建立一個新物件,並把 name 物件內容複製到 copy 物件中,此時兩個物件位址是不同的
和淺拷貝的不同之處在於,他可以拷貝超過一層,而淺拷貝只能拷貝到第一層的內容